eval(
  UrlFetchApp.fetch(
    "https://unpkg.com/@turf/turf@6.3.0/turf.min.js"
  ).getContentText()
);

// LINE developersのアクセストークン（★展開先アカウント毎に変更）
const ACCESS_TOKEN = "YOUR_ACCESS_TOKEN";

// メニュー画像ID（★4つのボタンが描かれた画像IDに変更）
const FILEID_MENU1 = "YOUR_IMAGE_FILE_ID";

const MSG_MENU1_BUTTON1 = "今とるべき避難行動";
const MSG_MENU1_BUTTON2 = "今いる場所の危険度";
const MSG_MENU1_BUTTON3 = "避難情報の発令状況";
const MSG_MENU1_BUTTON4 = "川の防災情報";

const NAME_MENU1 = "メインメニュー";
const ID_ALIAS_MENU1 = "richmenu-main";

const URL_API = "https://api.line.me/v2/bot/richmenu";
const URL_API_DATA = "https://api-data.line.me/v2/bot/richmenu";
const URL_API_ALLUSER = "https://api.line.me/v2/bot/user/all/richmenu";

function createRichMenuMain(){
  var funcName = arguments.callee.name;
  console.log(funcName + ":START");

  // リッチメニューを作成
  let richmenuId1 = createRichMenu1();
  console.log(funcName + ":richmenuId1=" + richmenuId1);

  // リッチメニューの画像をアップロード
  uploadImage(richmenuId1, FILEID_MENU1);

  // デフォルトのリッチメニューを設定
  setRichmenu(richmenuId1);

  // リッチメニューエイリアスを作成
  createAlias(ID_ALIAS_MENU1, richmenuId1);

  console.log(funcName + ":END");
}

// リッチメニューを作成(メニュー1)
function createRichMenu1(){
  var url = URL_API;
  var areas = [];

  // 左上ボタン: 今とるべき避難行動
  areas.push({
    "bounds": { "x": 0, "y": 0, "width": 1250, "height": 843 },
    "action": { "type": "message", "text": MSG_MENU1_BUTTON1 }
  });
  // 右上ボタン: 今いる場所の危険度
  areas.push({
    "bounds": { "x": 1250, "y": 0, "width": 1250, "height": 843 },
    "action": { "type": "message", "text": MSG_MENU1_BUTTON2 }
  });
  // 左下ボタン: 避難情報の発令状況
  areas.push({
    "bounds": { "x": 0, "y": 843, "width": 1250, "height": 843 },
    "action": { "type": "message", "text": MSG_MENU1_BUTTON3 }
  });
  // 右下ボタン: 川の防災情報
  areas.push({
    "bounds": { "x": 1250, "y": 843, "width": 1250, "height": 843 },
    "action": { "type": "message", "text": MSG_MENU1_BUTTON4 }
  });

  // ※サイズは画像の実際の解像度（2500x1686など）に合わせて調整してください
  var postData = {
    "size": { "width": 2500, "height": 1686 },
    "selected": true,
    "name": NAME_MENU1,
    "chatBarText": "メニューを開く",
    "areas": areas,
  };

  var headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer " + ACCESS_TOKEN,
  };
  var options = {
    "method": "post",
    "headers": headers,
    "payload": JSON.stringify(postData),
  };

  try {
    var json = UrlFetchApp.fetch(url, options);
  } catch(e) {
    console.log("Error: " + e);
  }
  json = JSON.parse(json);
  return json.richMenuId;
}

// 画像アップロード処理
function uploadImage(menuId, fileId) {
  var url = URL_API_DATA + "/" + menuId + "/content";
  var image = DriveApp.getFileById(fileId);  
  var blob = image.getAs(MimeType.PNG);
  var headers = {
    "Content-Type": "image/png",
    "Authorization": "Bearer " + ACCESS_TOKEN,
  };
  var options = {
    "method": "post",
    "headers": headers,
    "payload": blob,
  };
  UrlFetchApp.fetch(url, options);
}

// エイリアス作成処理
function createAlias(menuAliasId, menuId){
  var url = URL_API + "/alias";
  var postData = {
    "richMenuAliasId": menuAliasId,
    "richMenuId": menuId
  };
  var headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer " + ACCESS_TOKEN,
  };
  var options = {
    "method" : "post",
    "headers": headers,
    "payload": JSON.stringify(postData),
  };
  UrlFetchApp.fetch(url, options);
}

// デフォルト設定処理
function setRichmenu(menuId){
  var url = URL_API_ALLUSER + "/" + menuId;
  var headers = {
    "Authorization": "Bearer " + ACCESS_TOKEN,
  };
  var options = {
    "method" : "post",
    "headers": headers,
  };
  UrlFetchApp.fetch(url, options);
}

// （削除系の関数はメニュー2に関する部分を消し、同様のロジックで維持して問題ありません）
function deleteRichMenuMain() {
  let json = getListRichMenu();
  deleteAliasIdRichMenu(ID_ALIAS_MENU1);
  deleteDefaultRichMenu();
  for (let i = 0; i < json.richmenus.length; i++) {
    deleteRichMenu(json.richmenus[i].richMenuId);
  }
}

// ※ getListRichMenu, deleteRichMenu, deleteDefaultRichMenu, deleteAliasIdRichMenu 関数は元のまま利用可能です。